package com.zut.service.impl;

import com.zut.dao.ClassesDao;
import com.zut.dao.impl.ClassesDaoImpl;
import com.zut.entity.Classes;
import com.zut.service.ClassesService;

import java.util.List;

/**
 * 班级业务实现类
 */
public class ClassesServiceImpl implements ClassesService {

    //创建一个班级持久层对象
    private ClassesDao clsDao = new ClassesDaoImpl();

    /**
     * 添加班级业务
     *   1、根据班级名称查询
     *
     *   2、根据查询结果判断：
     *      如果为null，表示班级名称不存在，添加班级，返回true
     *      如果不为null,表示名称已经存在，返回false
     *
     * @param classesName
     * @return
     */
    @Override
    public boolean addClasses(String classesName) {

        //调用持久层查询班级的方法
        Classes cls = clsDao.findClassByName(classesName);
        //判断，班级名称释放重复
        if(cls!=null){
            return false;
        }
        //执行数据添加
        clsDao.addClasses(classesName);

        return true;
    }

    /**
     * 全部班级查询
     * @return
     */
    @Override
    public List<Classes> findAllClasses() {
        return clsDao.findAllClasses();
    }

    /**
     * 根据班级名称模糊查询
     * @param className
     * @return
     */
    @Override
    public List<Classes> findClassesByClassName(String className) {

        return  clsDao.findClassByClassName("%"+className+"%");
    }


    /**
     * 修改班级名称
     * @param classId
     * @param newClassName
     * @return
     */
    @Override
    public int updateClassNameById(String classId, String newClassName) {

        //根据班级名称查询，确定是否重复
        Classes classes = clsDao.findClassByName(newClassName);
        if(classes!=null){ //重复
            return 2;
        }

        //调用修改的sql 方法
        int i = clsDao.updateClassName(classId,newClassName);
        return i;
    }

    /**
     * 删除班级
     * @param classId
     * @return
     */
    @Override
    public boolean deleteClassesById(String classId) {

        //调用持久层方法
        int i = clsDao.deleteClasses(classId);

        return i>0;
    }

    /**
     * 添加教授关系
     * @param tid
     * @param classId
     */
    @Override
    public void addClassTeacher(String tid, String classId) {
        clsDao.addTeachingClass(tid,classId);
    }
}
